package Soligee.controller.facade.sessionFacadeImplements;

import Soligee.controller.facade.sessionFacade.SessionFacadeRemover;
import Soligee.model.vo.lancamentos.OrcamentoVO;
import Soligee.model.vo.cadastros.UsuarioVO;
import Soligee.model.vo.cadastros.EnderecoVO;
import Soligee.model.vo.cadastros.VendedorVO;
import Soligee.model.vo.cadastros.PessoaVO;
import Soligee.model.vo.cadastros.PessoaFisicaVO;
import Soligee.model.vo.cadastros.ProdutoVO;
import Soligee.model.persistencia.*;
import Soligee.model.vo.cadastros.FornecedorVO;
import Soligee.model.vo.cadastros.LembreteVO;
import Soligee.model.vo.cadastros.PessoaJuridicaVO;
import Soligee.model.vo.cadastros.RepresentanteVO;
import Soligee.model.vo.lancamentos.BancoVO;
import Soligee.model.vo.lancamentos.ChequeVO;
import Soligee.model.vo.lancamentos.NFEntradaVO;
import Soligee.model.vo.lancamentos.PedidoCompraVO;

public class SessionFacadeRemoverImplements implements SessionFacadeRemover{
    
       public boolean removerUsuario (UsuarioVO usuario)throws Exception{
        
            DAO dao = new DAO(UsuarioVO.class);

            usuario.setAtivo(false);
        
            return dao.update(usuario);
        
        }

       public boolean removerRepresentante (PessoaVO representante)throws Exception{

           DAO dao = new DAO(PessoaVO.class);

           representante.setAtivo(false);

           return dao.update(representante);
       }
        
       public boolean removerPessoaFisica(PessoaVO pessoa,EnderecoVO endereco)throws Exception{
                    
            DAO dao = new DAO(PessoaFisicaVO.class);

            DAO dao2 = new DAO(EnderecoVO.class);

            pessoa.setAtivo(false);

            endereco.setAtivo(false);
            
            dao2.update(endereco);
            
           return dao.update(pessoa);
        }

        public boolean removerPessoaJuridica(PessoaVO pessoa,EnderecoVO endereco)throws Exception{

            DAO dao = new DAO(PessoaJuridicaVO.class);
            DAO dao2 = new DAO(EnderecoVO.class);

            pessoa.setAtivo(false);

            endereco.setAtivo(false);

            dao2.update(endereco);            

            return dao.update(pessoa);
        }

        public boolean removerRepresentante (RepresentanteVO representante, EnderecoVO endereco) throws Exception {

            DAO dao = new DAO (RepresentanteVO.class);
            DAO dao2 = new DAO (EnderecoVO.class);

            representante.setAtivo(false);

            endereco.setAtivo(false);

            dao2.update(endereco);

            return dao.update(representante);
        }
    
       public boolean removerOrcamento(OrcamentoVO orcamento)throws Exception{
            
            DAO dao = new DAO(OrcamentoVO.class);

            orcamento.setAtivo(false);
        
            return dao.update(orcamento);
        
        }

       public boolean removerPedido(PedidoCompraVO pedido)throws Exception{

            DAO dao = new DAO(PedidoCompraVO.class);

            pedido.setAtivo(false);

            return dao.update(pedido);

        }

       public boolean removerNfEntrada(NFEntradaVO nfEntrada)throws Exception{

            DAO dao = new DAO(NFEntradaVO.class);

            nfEntrada.setAtivo(false);

            return dao.update(nfEntrada);

        }

       public boolean removerProduto (ProdutoVO produto)throws Exception{
            
            DAO dao = new DAO(ProdutoVO.class);

            produto.setAtivo(false);
        
            return dao.update(produto);
        }   
    
       public boolean removerVendedor (VendedorVO vendedor)throws Exception{
            
            DAO dao = new DAO(VendedorVO.class);

            vendedor.setAtivo(false);
        
            return dao.update(vendedor);
        }

       public boolean removerFornecedor(FornecedorVO fornecedor,EnderecoVO endereco)throws Exception{

           DAO dao = new DAO(FornecedorVO.class);
          
           DAO dao2 = new DAO(EnderecoVO.class);

           endereco.setAtivo(false);
          
           fornecedor.setAtivo(false);

           dao2.update(endereco);
           
           return dao.update(fornecedor);
       }

       public boolean removerBanco(BancoVO banco)throws Exception{
          DAO dao = new DAO(BancoVO.class);
          banco.setAtivo(false);
          return dao.update(banco);
       }

       public boolean removerCheque(ChequeVO cheque)throws Exception{
          DAO dao = new DAO(ChequeVO.class);
          cheque.setAtivo(false);
          return dao.update(cheque);
       }

       public boolean removerLembrete(LembreteVO lembrete) throws Exception{
           DAO dao = new DAO(LembreteVO.class);
           return dao.Excluir(lembrete);
       }


        
}
